home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / CRS / crs19.d81 / spectrum.sfx / disk merge (.txt) < prev    next >
Commodore BASIC  |  1992-09-01  |  2KB  |  66 lines

  1. 100 POKE53280,6:MT$="[154]":GOTO390
  2. 110 GET#FI,BY$:IFBY$<>""THENPRINT#3,BY$;:GOTO110
  3. 120 PRINT#3,NU$;:RETURN
  4. 130 GET#FI,BY$:IFBY$=""THENBY=0:RETURN
  5. 140 BY=ASC(BY$):RETURN
  6. 150 DV=WD/256:HI=INT(DV):LO=WD-HI*256:PRINT#3,CHR$(LO);CHR$(HI);:RETURN
  7. 160 GOSUB130:LO=BY:GOSUB130:LI(FI)=BY*256+LO
  8. 170 GOSUB130:LO=BY:GOSUB130:LN(FI)=BY*256+LO
  9. 180 IFLI(FI)>0THENPRINTTAB(9+(FI-1)*13);LN(FI);"[145]"
  10. 190 CA(FI)=CA(FI)+LS(FI):LS(FI)=LI(FI)-CA(FI):RETURN
  11. 200 LI(3)=LI(3)+LS(FI):WD=LI(3):GOSUB150:WD=LN(FI):GOTO150
  12. 210 GOSUB200:GOSUB110:GOTO160
  13. 220 IFLI(1)=0ANDLI(2)=0THENRETURN
  14. 230 IFLI(2)=0THENFI=1:GOSUB210:GOTO220
  15. 240 IFLI(1)=0THENFI=2:GOSUB210:GOTO220
  16. 250 IFLN(1)<LN(2)THENFI=1:GOSUB210:GOTO220
  17. 260 IFLN(1)>LN(2)THENFI=2:GOSUB210:GOTO220
  18. 270 FI=1:GOSUB210:FI=2:GOSUB280:GOTO220
  19. 280 GET#FI,BY$:IFBY$<>""THEN280
  20. 290 GOTO160
  21. 300 GOSUB130:LO=BY:GOSUB130:CA(FI)=BY*256+LO:RETURN
  22. 310 WD=CA(3):GOTO150
  23. 320 PRINT PROMPT$;"[160][160][160][160][160]           [157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]";
  24. 330 INPUT FI$:FC$=LEFT$(FI$,1)
  25. 340 NULL=FC$="[160]":QUIT=FC$="_":RETURN
  26. 350 OPEN FI,8,FI+2,"0:"+FI$
  27. 360 INPUT#15,EN,EM$,ET,ES
  28. 370 ERR=EN>19:IF ERR THEN PRINT"   ERROR #"EN;EM$:CLOSE FI:PRINT"[145][145][145]"
  29. 375 FORI=1TO2500:NEXT:RETURN
  30. 390 DIM CA(3),LI(3),LN(2),LS(2)
  31. 400 NU$=CHR$(0)
  32. 410 PRINT:PRINT"[147]"MT$"             DISK MERGE       "
  33. 415 PRINT"    ENTER '_' AT ANY PROMPT TO QUIT"
  34. 416 FORI=1TO20:PRINT"[192] ";:NEXT
  35. 420 OPEN 15,8,15
  36. 430 FI=1:PROMPT$="   PRIMARY FILE"
  37. 440 GOSUB 320:IF NULL THEN 440
  38. 450 IF QUIT THEN 700
  39. 460 GOSUB 350:IF ERR THEN 440
  40. 470 FI=2:PROMPT$=" SECONDARY FILE"
  41. 480 GOSUB 320:SECNULL=NULL
  42. 490 IF SECNULL THEN PRINT "*RELOCATE ONLY*":GOTO530
  43. 500 IF QUIT THEN 700
  44. 510 AF$=FI$
  45. 520 GOSUB 350:IF ERR THEN 480
  46. 530 FI=3:PROMPT$="    MERGED FILE"
  47. 540 GOSUB 320:IF NULL THEN 540
  48. 550 IF QUIT THEN 700
  49. 560 FI$=FI$+",P,W":GOSUB 350:IF ERR=0 THEN 620
  50. 570 IF EN<>70 THEN 540
  51. 580 PRINT "[145]                [145]"
  52. 590 BF$=FI$:CLOSE 2:GOSUB 350:E2=ERR
  53. 600 FI=2:FI$=AF$:GOSUB350:FI=3:FI$=BF$
  54. 610 IF E2 THEN 530
  55. 620 PRINT" ------------ NOW MERGING -------------"
  56. 625 PRINT"      PRI FILE #    SEC FILE #"
  57. 630 PRINT"     [183][183][183][183][183][183][183][183][183][183][183][183]  [183][183][183][183][183][183][183][183][183][183][183][183]":BA$="1025"
  58. 640 CA(3)=VAL(BASE$):LI(3)=CA(3)
  59. 650 FI=1:GOSUB 300:GOSUB 160
  60. 660 IF NOT SECNULL THEN FI=2:GOSUB 300:GOSUB 160
  61. 670 GOSUB 310
  62. 680 GOSUB 220
  63. 690 PRINT#3,NU$;NU$;
  64. 700 CLOSE 3:CLOSE 2:CLOSE 1:CLOSE 15
  65. 710 PRINT"               ALL DONE":END
  66.